0장. 한눈에 보기

출처: 『AI 엔지니어링』(Chip Huyen 지음) | 원서: AI Engineering (O'Reilly) — 본 입문판은 PDF 원문에서 직접 풀어 썼다.

코드는 분위기만 — Python·API·import 같은 말은 몰라도 됩니다. 표의 '비유'와 '위험'만 봐도 충분해요.

이 책 큰 그림 4가지만

  1. 이제는 모델을 직접 만들지 않는다. 남이 만들어 둔 거대한 모델을 가져다 쓴다. 그 거대한 모델을 파운데이션 모델(foundation model)이라 부른다.
  2. 그 모델을 부리는 일이 이 책의 주제다. 말로 시키고(프롬프트), 자료를 붙여 주고(RAG), 채점하고(평가), 필요하면 살짝 다듬는다(파인튜닝). 이 일을 통틀어 AI 엔지니어링이라 한다.
  3. 모델이 거대해진 비결은 하나다. 사람이 정답을 일일이 안 달아도, 글 자체가 정답이 된다(자기지도학습). 그래서 인터넷만큼의 글로 학습할 수 있었다.
  4. 가장 어려운 일은 만드는 게 아니라 잘 만들었는지 채점하는 것(평가)이다. 모델이 똑똑할수록 채점은 더 어려워진다.

이 0장은 책 본문에 나오는 어려운 말을 미리 풀어 둔 곳이다.

뒤 장에서 막히면 여기로 돌아오면 된다.

용어집(0절)과 개념 척추가 전부다. 천천히 읽으면 된다.


0. 먼저 알아둘 말 (용어집)

이 절은 책 전체 용어의 단일 출처다.

본문 어디서 어려운 말이 나와도, 그 뜻은 전부 여기 적혀 있다.

각 용어는 [한 문장 뜻 + 일상비유 + 한 줄 예] 3종으로 적었다.


파운데이션 모델(foundation model)

한 문장 뜻 — 인터넷만큼 방대한 데이터로 미리 학습돼, 한 가지가 아니라 온갖 일에 두루 쓰이는 거대한 모델.

일상비유 — 만능 베테랑. 번역도 하고, 요약도 하고, 코드도 짜고, 그림도 본다. 따로 가르칠 필요 없이 이미 다 할 줄 안다.

한 줄 예 —

# 내가 학습시키지 않은 거대 모델을 그냥 불러서 씀
# `answer`에 중간 결과를 담아 다음 줄에서 재사용합니다.
answer = model.ask("이 문장 영어로 번역해줘")

언어 모델(language model, LM)

한 문장 뜻 — 주어진 앞 문맥에서 다음에 어떤 단어가 나올지 확률로 맞히는 모델.

일상비유 — 휴대폰 자동완성. "내가 가장 좋아하는 색은" 다음에 "자동차"보다 "파란색"을 더 자주 떠올린다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 앞 문맥을 주면 다음에 올 단어를 확률로 고름
model.next("내가 가장 좋아하는 색은")  # → "파란색"이 유력

LLM(대규모 언어 모델, large language model)

한 문장 뜻 — 언어 모델을 어마어마하게 키운 것. 파운데이션 모델 중 글을 다루는 쪽.

일상비유 — 자동완성의 끝판왕. "사느냐 죽느냐"까지 치면 "그것이 문제로다"를 척척 이어 붙인다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 앞 문장을 주면 뒤를 이어서 완성함
model.complete("To be or not to be,")  # → " that is the question"

토큰(token)

한 문장 뜻 — 모델이 글을 다룰 때 쓰는 가장 작은 조각. 한 단어일 수도, 단어의 일부(-tion 등)일 수도 있다.

일상비유 — 레고 블록. 모델은 문장을 통째로 안 보고 블록(토큰) 단위로 쪼개서 다룬다. 영어 기준 100토큰이 대략 75단어다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# "can't" 한 단어가 두 토큰으로 쪼개질 수 있음
tokens = ["can", "'t"]  # 두 조각 = 토큰 2개

자기지도학습(self-supervised learning)

한 문장 뜻 — 사람이 정답표를 따로 안 만들어도, 데이터 자체에서 정답을 스스로 뽑아 학습하는 방식.

일상비유 — 가림판 빈칸 채우기. "I love street ___"에서 가린 단어를 맞히는 식이라, 멀쩡한 문장 하나가 곧 문제이자 정답이다.

한 줄 예 —

# 문장 하나가 (앞부분 → 다음 단어) 학습 문제를 여러 개 만들어 냄
# 이 줄은 예제 흐름을 이루는 실제 처리 단계입니다.
"I love food" → [("I","love"), ("I love","food")]

파라미터(parameter)

한 문장 뜻 — 학습하면서 값이 조금씩 바뀌는 모델 내부의 숫자 손잡이. 개수가 곧 모델 크기다.

일상비유 — 라디오 다이얼 수백억 개. 학습은 이 다이얼들을 조금씩 돌려 맞추는 일이고, 다이얼이 많을수록 더 정교한 소리를 낼 수 있다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 파라미터 1,000억 개면 오늘 기준 "대규모"로 친다
model.size = 100_000_000_000  # 손잡이 1,000억 개

멀티모달(multimodal)

한 문장 뜻 — 글뿐 아니라 이미지·음성·영상 같은 여러 종류의 데이터를 함께 다루는 능력.

일상비유 — 오감 중 둘 이상을 쓰는 사람. 글만 읽는 게 아니라 사진을 보고 "이건 강아지"라고 말할 수 있다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 그림과 글을 같이 받아서 답함
model.ask(image="puppy.jpg", text="이게 뭐야?")  # → "강아지"

임베딩(embedding)

한 문장 뜻 — 글·그림의 '의미'를 숫자 목록(벡터)으로 바꿔, 뜻이 비슷하면 숫자도 가깝게 만든 표현.

일상비유 — 지도 위 좌표. 뜻이 비슷한 말끼리는 지도에서 가까운 자리에 찍힌다. "강아지"와 "개"는 이웃, "강아지"와 "세금"은 멀다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 글을 의미 좌표(숫자 목록)로 바꿈
vec = embed("강아지")  # → [0.21, -0.07, ...] 비슷한 말은 비슷한 숫자

프롬프트 엔지니어링(prompt engineering)

한 문장 뜻 — 모델 자체는 안 건드리고, 시키는 말(지시문)을 다듬어 원하는 답을 끌어내는 일.

일상비유 — 주문 잘하기. 같은 식당이라도 "맵게, 면 적게"라고 정확히 말하면 원하는 게 나온다. 주방(모델)은 그대로다.

한 줄 예 —

# 모델은 그대로, 지시문만 더 자세히
# 모델에게 어떤 역할과 입력을 줄지 프롬프트 틀을 만듭니다.
prompt = "다음 글을 세 줄로, 초등학생도 알게 요약해줘: ..."

RAG(검색 증강 생성, retrieval-augmented generation)

한 문장 뜻 — 모델이 답하기 전에 관련 자료를 찾아 붙여 줘서, 더 정확하게 답하게 하는 방법.

일상비유 — 오픈북 시험. 외운 것만으로 답하는 대신, 자료를 펴 놓고 찾아보며 답하니 틀릴 일이 준다.

한 줄 예 —

# 질문에 맞는 자료를 먼저 찾아 모델에게 같이 줌
# 질문과 가까운 문서 조각을 찾아오는 검색 단계를 실행합니다.
docs = search("환불 규정")
# `model.ask("환불 규정 알려줘", context`에 중간 결과를 담아 다음 줄에서 재사용합니다.
model.ask("환불 규정 알려줘", context=docs)

파인튜닝(fine-tuning)

한 문장 뜻 — 이미 다 만들어진 모델을 우리 데이터로 조금 더 가르쳐, 특정 작업에 맞게 다듬는 것.

일상비유 — 경력직 재교육. 새로 뽑아 처음부터 가르치는 게 아니라, 이미 일 잘하는 사람에게 우리 회사 방식만 며칠 더 알려 주는 것.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 기존 모델을 우리 예시로 추가 학습
model.finetune(our_examples)  # 처음부터가 아니라 "조금 더"

환각(hallucination)

한 문장 뜻 — 모델이 사실이 아닌 내용을 그럴듯하게 지어내는 현상.

일상비유 — 모르는 걸 아는 척 술술 말하는 사람. 말투가 자신만만해서 거짓인 줄 알아채기 어렵다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 존재하지 않는 판례를 진짜처럼 만들어 냄
model.ask("관련 판례?")  # → 그럴듯하지만 실제로는 없는 사건

평가(evaluation)

한 문장 뜻 — 모델이나 앱의 답이 얼마나 좋은지 체계적으로 채점하는 일.

일상비유 — 시험 채점. 눈대중으로 "괜찮네" 하고 넘기면 진짜 실력을 모른다. 기준을 정해 매겨야 어디가 약한지 보인다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 답을 기준에 맞춰 점수로 매김
score = evaluate(model_answer, rubric)  # 눈대중 X, 기준 O

벤치마크(benchmark)

한 문장 뜻 — 여러 모델을 같은 잣대로 비교하려고 만든 표준 문제 모음.

일상비유 — 공통 모의고사. 같은 시험지를 풀려야 누가 더 잘하는지 공정하게 비교된다. 다만 답이 유출되면(외워 버리면) 시험이 쓸모없어진다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 표준 문제 묶음으로 모델끼리 점수 비교
gpt4.run(MMLU)   # 같은 시험지를
llama.run(MMLU)  # 둘 다 풀려서 비교

커먼 크롤(Common Crawl)

한 문장 뜻 — 인터넷 웹페이지를 주기적으로 통째로 긁어모은, 모델 학습에 가장 널리 쓰이는 거대 데이터 더미.

일상비유 — 인터넷을 통째로 퍼 온 물탱크. 깨끗한 물도 있지만 가짜 뉴스 같은 흙탕물도 섞여 있어, 그냥 마시기 전에 거르는 게 보통이다.

한 줄 예 —

# 아래 예제는 핵심 흐름만 짧게 보여 줍니다.
# 웹을 긁어 만든 학습용 데이터 더미(품질은 들쭉날쭉)
data = common_crawl_pages  # 수십억 페이지, 옥석 섞임

개념 척추

여기 6개는 책 전체를 관통하는 큰 줄기다.

각각 ①망가지는 장면 ②일상비유 ③비유·코드·위험 표 ④한 문장 정의 순서다.


척추 1 — 모델은 '완성 기계'다

망가지는 장면

"AI한테 질문했는데 답을 안 하고 비슷한 질문을 또 만들어 내더라."

모델이 고장 난 게 아니다. 모델은 원래 '질문에 답하는 기계'가 아니라, 앞에 주어진 글을 그럴듯하게 이어 붙이는 기계이기 때문이다.

일상비유

휴대폰 자동완성. "사느냐 죽느냐"까지 치면 "그것이 문제로다"를 이어 붙인다.

답이 맞는지는 따지지 않는다. 그저 "이 다음엔 이게 올 법하다"를 확률로 고를 뿐이다.

비유 코드 위험
자동완성이 뒷말 이어 붙임 model.complete("사느냐 죽느냐")", 그것이 문제로다" 확률로 고른 거라 사실이 틀릴 수 있음
번역도 '완성'으로 처리 model.complete("How are you in French is")"Comment ça va" 그럴듯해도 보장은 없음

한 문장 정의 — 언어 모델은 앞 글에 이어질 토큰을 확률로 고르는 완성 기계이며, 답이 그럴듯한 것과 사실인 것은 별개다.


척추 2 — 정답을 안 달아도 되는 학습(자기지도학습)

망가지는 장면

"모델 하나 학습시키려면 사람이 데이터에 정답을 일일이 달아야 하는데, 100만 장에 5만 달러… 이걸 어떻게 인터넷 규모로?"

옛날 방식(지도학습)은 사람이 정답표를 만들어야 해서 돈과 시간이 천문학적이었다.

그 벽을 넘은 게 자기지도학습이다. 글 자체를 정답으로 쓴다.

일상비유

가림판 빈칸 채우기. "I love street ___"에서 가린 단어를 맞히면 된다.

멀쩡한 문장 한 줄이 곧 문제이자 정답이라, 사람이 따로 채점표를 만들 필요가 없다.

비유 코드 위험
사람이 일일이 정답 달기(옛날) label(img) = "고양이" # 100만 번 손으로 비용·시간 폭발
문장이 스스로 문제를 냄(자기지도) "I love food" → [("I","love"),("I love","food")] 인터넷 글의 품질이 들쭉날쭉

한 문장 정의 — 자기지도학습은 데이터 자체에서 정답(다음 토큰)을 뽑아 쓰는 방식이며, 덕분에 사람이 채점 안 해도 인터넷 규모로 모델을 키울 수 있었다.


척추 3 — 한 가지만 잘하는 모델 → 뭐든 하는 모델

망가지는 장면

"감정 분석 모델을 어렵게 만들어 놨는데, 번역은 한 글자도 못 한다. 번역하려면 또 처음부터 만들어야 한다."

옛날엔 작업마다 전용 모델을 따로 만들었다. 하나가 다른 일을 못 했다.

파운데이션 모델은 이 칸막이를 허물었다. 하나로 번역도 요약도 분류도 한다.

일상비유

전문가 한 명만 쓰던 시절 vs 만능 베테랑 한 명. 예전엔 번역가·교정가·요약가를 따로 불렀다.

지금은 베테랑 한 명이 다 한다. 특정 일을 더 잘 시키고 싶으면 며칠 더 가르치면(파인튜닝) 된다.

비유 코드 위험
작업마다 전용 모델(옛날) sentiment_model 은 번역 못 함 새 작업마다 처음부터 다시
만능 베테랑 하나(파운데이션) model.ask("번역"), model.ask("요약") 전용 모델보다 느리고 비쌀 수 있음

한 문장 정의 — 파운데이션 모델은 작업마다 따로 만들던 시대를 끝내고 하나의 범용 모델로 여러 일을 처리하게 했으며, 특정 작업 성능은 파인튜닝으로 끌어올린다.


척추 4 — 모델을 '만드는' 게 아니라 '부리는' 일(AI 엔지니어링)

망가지는 장면

"AI 한다고 하면 다들 모델을 처음부터 학습시키는 줄 안다. 그런데 그건 구글·오픈AI나 하는 일이고, 나는 그걸 가져다 쓸 뿐인데?"

거대 모델을 만드는 건 소수의 거대 조직만 할 수 있다.

대다수가 하는 일은 그 모델을 가져다 부리는 것이다. 이게 AI 엔지니어링이다.

일상비유

발전소를 짓는 일(모델 학습) vs 콘센트에 플러그를 꽂아 쓰는 일(AI 엔지니어링).

대부분은 발전소를 안 짓는다. 플러그를 꽂고(API 호출), 어떻게 잘 쓸지를 고민한다.

비유 코드 위험
발전소 짓기(ML 엔지니어링) 데이터·GPU·6개월로 모델 학습 자원·전문성 장벽 거대
플러그 꽂기(AI 엔지니어링) answer = api.call(model, prompt) 모델 속을 모르니 통제가 어려움

한 문장 정의 — AI 엔지니어링은 이미 만들어진 파운데이션 모델을 API로 가져다 부려 애플리케이션을 만드는 일이며, 모델을 직접 학습하는 ML 엔지니어링과 무게중심이 다르다.


척추 5 — 데모는 쉽고 진짜 제품은 어렵다

망가지는 장면

"주말에 뚝딱 만든 데모는 멋지게 돌았는데, 막상 사용자에게 내놓으니 엉뚱한 답·거짓 답이 쏟아진다."

모델이 강력해서 시작은 쉽다. 그래서 진입장벽이 낮아졌다.

하지만 믿고 쓸 제품으로 만드는 마지막 구간이 제일 멀고 험하다.

일상비유

요리 사진 한 장 찍기(데모) vs 매일 손님에게 같은 맛을 내는 식당 운영(제품).

한 번 멋진 접시는 쉽다. 100명에게 한결같이 내놓는 건 전혀 다른 일이다.

비유 코드 위험
사진용 한 접시(데모) model.ask(prompt) # 한 번 잘 됨 "잘 되네" 착각
매일 같은 맛(제품) 환각·실패까지 막는 검증 파이프라인 마지막 마무리가 가장 어려움

한 문장 정의 — 파운데이션 모델 덕에 데모는 쉬워졌지만 믿을 수 있는 제품까지의 간극은 크며, 이 책의 나머지 장은 그 간극을 메우는 방법을 다룬다.


척추 6 — 잘 만들었는지 채점하기(평가)가 제일 어렵다

망가지는 장면

"AI 답이 그럴듯해서 그냥 '괜찮네' 하고 넘겼는데, 나중에 보니 사실이 틀렸다. 챗봇 오답으로 회사가 배상까지 했다."

모델이 똑똑할수록 답도 그럴듯해진다. 그래서 눈대중 채점이 더 위험해진다.

게다가 답이 열려 있어(정답 하나가 아님) 기존 채점법이 안 통한다.

일상비유

초등 수학 채점 vs 박사 논문 채점. 1학년 답은 누구나 맞는지 안다.

박사급 답은 채점하는 사람도 전문가여야 하고, 답이 여러 개라 "이것만 정답"이라 못 박기도 어렵다.

비유 코드 위험
눈대중 "괜찮네"(분위기 확인) if looks_ok(answer): ship() 그럴듯한 거짓을 통과시킴
기준 잡고 채점(체계적 평가) score = evaluate(answer, rubric) 기준 만들기가 일의 절반

한 문장 정의 — 평가는 모델 답의 좋고 나쁨을 체계적으로 채점하는 일이며, 모델이 똑똑하고 답이 열려 있을수록 더 어려워져 이 책의 심장이 된다.


한 걸음 더 ▸ (지금 몰라도 됨)

지금은 큰 그림 하나만 들고 가면 된다. 남이 만든 거대 모델을 가져다, 말로 시키고·자료 붙이고·채점하며 부리는 일이 AI 엔지니어링이다.

프롬프트·RAG·파인튜닝 중 언제 무엇을 쓰는지, 평가를 어떻게 설계하는지는 더 깊은 주제다. 지금은 "모델은 가져다 쓰는 것, 채점이 핵심"만 기억하면 된다.


사이드박스 — 어원 한 조각 (흥미용)

'생성형 AI(generative AI)'의 '생성'은 모델이 정해진 답 없이 새 결과물을 만들어 낸다는 데서 왔다. 정해진 어휘만 가지고도 무한히 다양한 문장을 뽑아내기 때문이다.

토큰(token)은 원래 '징표·조각'이라는 뜻이다. 글을 의미 있는 조각으로 나눈 그 조각이 바로 토큰이다. 외워 둘 필요는 없다.


부록 박스 — 역사 원형 (참고용, 건너뛰어도 됨)

언어의 통계적 성질은 새 발견이 아니다. 셜록 홈즈는 1905년 이야기에서 "영어에서 가장 흔한 글자는 E"라는 통계를 써서 암호를 풀었고, 클로드 섀넌은 1951년 논문에서 언어를 수학적으로 모델링했다.

오늘날의 거대 모델도 결국 "다음에 올 글자·단어를 확률로 맞힌다"는 같은 뿌리에서 자랐다. 이 책 본문 코드는 분위기만 Python으로 본다.


다음 장 예고

다음 1장에서는 언어 모델이 어떻게 LLM과 파운데이션 모델로 자랐고, 그 위에서 우리가 무엇을 만드는지 본다.

지금 0장 용어와 척추만 머리에 있으면 충분하다. 나머지는 1장에서 천천히 다룬다.

난이도
에피소드
질문
카드를 로딩 중...
답변

클릭하거나 Space를 눌러 뒤집기

0 / 0
학습 진도 0%
이동   Space 뒤집기   R 셔플